home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky04.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.uvod = 0
- room.fofr = randint(300, 1500)
- room.jestejednu = randint(500, 5000)
- room.flakat = 0
- room.otyci = randint(500, 3000)
- room.kleopatra = randint(300, 1000)
- room.opoteru = randint(600, 1200)
-
- return function()
- if isReady(small) and isReady(big) and no_dialog() then
- if room.jestejednu > 0 then
- room.jestejednu = room.jestejednu - 1
- end
- if room.jestejednu < -1 and room.jestejednu > -60 then
- room.jestejednu = room.jestejednu + 1
- end
- if room.jestejednu < -60 and room.jestejednu > -120 then
- room.jestejednu = room.jestejednu + 1
- end
- if room.otyci > 0 then
- room.otyci = room.otyci - 1
- end
- if room.kleopatra > 0 then
- room.kleopatra = room.kleopatra - 1
- end
- if room.opoteru > 0 then
- room.opoteru = room.opoteru - 1
- end
- if room.uvod == 0 then
- room.uvod = 1
- addm(random(200) + 10, "jed-m-libi")
- switch(random(2)){
- [0] = function()
- addm(random(5), "jed-m-perly0")
- end,
- [1] = function()
- addm(random(5), "jed-m-perly1")
- end,
- }
- switch(random(7)){
- [0] = function()
- addv(random(5), "jed-v-poslani0")
- end,
- [1] = function()
- addv(random(5), "jed-v-poslani0")
- end,
- [2] = function()
- addv(random(5), "jed-v-poslani1")
- end,
- [3] = function()
- addv(random(5), "jed-v-poslani1")
- end,
- [4] = function()
- addv(random(5), "jed-v-poslani2")
- end,
- [5] = function()
- addv(random(5), "jed-v-poslani2")
- end,
- }
- elseif room.fofr <= small.fofr and room.flakat == 0 then
- room.flakat = 1
- addm(1, "jed-m-flakas")
- switch(random(2)){
- [0] = function()
- addv(random(5), "jed-v-uzivat0")
- end,
- [1] = function()
- addv(random(5), "jed-v-uzivat1")
- end,
- }
- elseif room.jestejednu == 0 and dist(small, zeva) < 3 and look_at(small, zeva) and random(100) < 5 then
- room.jestejednu = -1 * (random(40) + 20)
- addm(1, "jed-m-perlorodka0")
- planDialogSet(randint(1, 20), "jed-x-nedam", 101, zeva, "cinnost")
- elseif dist(small, zeva) < 3 and look_at(small, zeva) and room.jestejednu == -1 then
- room.jestejednu = -1 * (random(40) + 80)
- addm(1, "jed-m-perlorodka1")
- planDialogSet(randint(1, 20), "jed-x-nedam", 101, zeva, "cinnost")
- elseif dist(small, zeva) < 3 and look_at(small, zeva) and room.jestejednu == -60 then
- room.jestejednu = random(10000) + 10000
- addm(1, "jed-m-perlorodka2")
- planDialogSet(randint(1, 20), "jed-x-nedam", 102, zeva, "cinnost")
- elseif room.otyci == 0 and room.flakat == 1 then
- addm(random(5), "jed-m-trubka")
- room.otyci = -1
- elseif room.kleopatra == 0 then
- addv(random(10), "jed-v-ocet")
- addm(random(4), "jed-m-moc")
- addv(random(5), "jed-v-vzdelat")
- room.kleopatra = -1
- elseif room.opoteru == 0 then
- addv(random(10), "jed-v-poter")
- if random(100) < 60 then
- addm(random(5), "jed-m-kulicka")
- end
- room.opoteru = -1
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_small()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- small.fofr = 0
-
- return function()
- if small.dir ~= dir_no and level_isNewRound() then
- small.fofr = small.fofr + 1
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_zeva()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- zeva.cinnost = 0
- zeva.pocet = 0
-
- return function()
- if zeva.cinnost == 0 and random(1000) < 10 then
- zeva.faze = 1
- if random(100) < 25 and zeva.pocet > 3 then
- zeva.cinnost = 2
- else
- zeva.cinnost = 1
- end
- zeva.pocet = zeva.pocet + 1
- end
- switch(zeva.cinnost){
- [1] = function()
- switch(zeva.faze){
- [1] = function()
- zeva.afaze = 1
- zeva.faze = zeva.faze + 1
- end,
- [2] = function()
- zeva.afaze = 2
- zeva.delay = random(10)
- zeva.faze = zeva.faze + 1
- end,
- [3] = function()
- if zeva.delay > 0 then
- zeva.delay = zeva.delay - 1
- else
- zeva.afaze = 1
- zeva.faze = zeva.faze + 1
- end
- end,
- [4] = function()
- zeva.cinnost = 0
- zeva.afaze = 0
- end,
- }
- end,
- [2] = function()
- switch(zeva.faze){
- [1] = function()
- zeva.afaze = 3
- zeva.faze = zeva.faze + 1
- end,
- [2] = function()
- zeva.afaze = 4
- zeva.delay = 20 + random(100)
- zeva.faze = zeva.faze + 1
- end,
- [3] = function()
- if zeva.delay > 0 then
- if random(100) < 3 then
- zeva.faze = 10
- else
- zeva.delay = zeva.delay - 1
- end
- else
- zeva.afaze = 1
- zeva.faze = zeva.faze + 1
- end
- end,
- [4] = function()
- zeva.cinnost = 0
- zeva.afaze = 0
- end,
- [16] = function()
- zeva.afaze = 4
- zeva.faze = 3
- end,
- default = function()
- if zeva.faze == 10 or zeva.faze == 15 then
- zeva.afaze = 5
- zeva.faze = zeva.faze + 1
- elseif zeva.faze == 11 or zeva.faze == 14 then
- zeva.afaze = 6
- zeva.faze = zeva.faze + 1
- elseif zeva.faze == 12 or zeva.faze == 13 then
- zeva.afaze = 7
- zeva.faze = zeva.faze + 1
- end
- end
- }
- end,
- [101] = function()
- zeva.faze = 1
- zeva.cinnost = 1
- end,
- [102] = function()
- zeva.faze = 1
- zeva.cinnost = 2
- end,
- }
- zeva:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_perla1()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.globpole = {}
- for pom1 = 0, 11 do
- room.globpole[pom1] = -random(50) - 10
- end
-
- return function()
- for pom1 = 0, 11 do
- room.globpole[pom1] = room.globpole[pom1] + 1
- if isIn(room.globpole[pom1], {0, 5}) then
- pom2 = 1
- elseif isIn(room.globpole[pom1], {1, 4}) then
- pom2 = 2
- elseif isIn(room.globpole[pom1], {2, 3}) then
- pom2 = 3
- elseif room.globpole[pom1] == 6 then
- pom2 = 0
- room.globpole[pom1] = -random(50) - 10
- else
- pom2 = 0
- end
- getModelsTable()[perla1.index + pom1].afaze = pom2
- getModelsTable()[perla1.index + pom1]:updateAnim()
- end
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_small()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_zeva()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_perla1()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-